/*
 * @lc app=leetcode.cn id=566 lang=cpp
 *
 * [566] 重塑矩阵
 */

// @lc code=start

// #include <iostream>
// #include <vector>
// using namespace std;

class Solution {
   public:
    vector<vector<int>> matrixReshape(vector<vector<int>>& mat, int r, int c) {
        // 获取原始矩阵的行和列
        int m = mat.size();
        int n = mat[0].size();

        // 如果操作不可行，直接返回原矩阵
        if (m * n != r * c) {
            return mat;
        }

        vector<vector<int>> ans(r, vector<int>(c));
        for (int i = 0; i < m * n; i++) {
            ans[i / c][i % c] = mat[i / n][i % n];
        }

        return ans;
    }
};
// @lc code=end
